/*
数字0-9的数量
给出一段区间a-b，统计这个区间内0-9出现的次数。
比如 10-19，1出现11次（10,11,12,13,14,15,16,17,18,19,其中11包括2个1)，其余数字各出现1次。
Input
两个数a,b（1 <= a <= b <= 10^18)
Output
输出共10行，分别是0-9出现的次数
Input示例
10 19
Output示例
1
11
1
1
1
1
1
1
1
1
题意分析：分析过程和数字1的数量那道题相同，查找0的时候是一个特殊情况，需要特别对待
由于0并不能做首部，但是计算的时候每次都会考虑进去，所以要把多出来的这部分给减去才可以
*/
#include <bits/stdc++.h>
#define ll long long
#define PI acos(-1)
const int INF = 1e9 + 7;
const int maxx = 1e6 + 1;
using namespace std;

ll i, current, before, after, cnt;

ll Count(ll n, ll m)
{
    i = 1;
    current = before = after = 0;
    cnt = 0;
    while ((n / i) != 0)
    {
        //举例来说明这三个数：例如12345，如果current为3，则before为12，after为45

        current = n / i % 10;

        before = n / i / 10;
        after = n - n / i * i;
        if (current > m)
            cnt += (before + 1) * i;
        else if (current == m)
            cnt += before * i + after + 1;
        else
            cnt += before * i;
        i *= 10;
    }
    //这里是对0进行处理要把重复的0去掉，个位多算了一个0，十位多算了10个，以此类推
    if (m == 0)
    {
        ll num = 1;
        while(n)
        {
            n /= 10;
            cnt -= num;
            num *= 10;
        }
    }
    return cnt;
}

int main()
{
    ll n, m;
    while(~scanf("%lld%lld", &n, &m))
    {
        for (int i = 0; i <= 9; i ++)
            cout << Count(m, i) - Count(n - 1, i) << endl;
    }
    return 0;
}
